1. The Field of the Invention
The present invention relates to the field of digital scanning devices such as printers. More specifically, the present invention relates to the decompression of run length encoded image data in digital scanning devices.
2. The Relevant Art
Printer systems, such as the printer system 100 shown in FIG. 1, are configured to conduct a series of hardware and software operations on digital print data in preparation for printing. These hardware and software operations are often referred to as a pipeline. The digital print data is used by the printer 108 to form a print image on a printing surface. Suitable examples of the printer 108 include a scanning laser beam and an inkjet. An area of the print surface on which the image is formed is referred to as a picture element (PEL or pixel). One scan of the laser beam or inkjet across the print surface forms a row of pixels referred to as a scan row. The print image is formed by multiple scan rows being successively formed on the print surface. Often, the image is further broken up into objects, with a plurality of objects per page.
The types of data passing through the pipeline generally includes text, graphics, images and combinations of these elements. The density of dot placement in modem printers is constantly increasing, particularly with color printing that requires additional bits per PEL over monochrome printing. The time required for the data pipeline to transmit the data from the host computer 102 to the printer 108 is correspondingly increasing. To fully utilize the increasing speed capabilities of print engines, the pipeline of a printer system must be able to transfer data fast enough to supply a continuous stream of data to the printer 108. This allows the printer 108 to print data continuously.
The depicted printer system 100 utilizes data compression 106 and data decompression 110 to compress and decompress print data in such a manner that it may be transferred to the printer 108 as a high volume, continuous data stream. Data compression refers to a process that attempts to convert data in a given format into an alternative format requiring less space and bandwidth than the original. One example of a data compression format is JPEG. By using data compression and decompression in printer systems such as the printer system 100, it is possible to transmit data quickly enough to keep the printer 108 printing data continuously.
One further compression technique, referred to as run length encoding, converts a data stream of continuous pixel data into a code for transmission. In so doing, repeated identical bytes of the data stream frequently occur and can be passed in compressed code. For example, using one run length compression method, the pixel data line xe2x80x9caaaabbbbbbbccccc22xe2x80x9d is converted into the coded data xe2x80x9ca4b7c5d2.xe2x80x9d The coded data consists of bytes of pixel information (a, b, c and d) and the number of those bytes that are the same (4, 7, 5 and 1). Each byte contains 8 bits of pixel information.
Once the print data is compressed in the print controller 104, the print data can be transmitted to the printer, for instance, across a PCI bus interface. Upon arriving at the printer 108, it becomes necessary to then decompress the print data. Prior art print engines are configured to decompress one incoming data stream at a time, typically, one PEL (which in color printers occupies one byte of print data) per clock cycle. Under this type of decompression scheme, the print engine is required to stop the printing process frequently while waiting for the incoming compressed data stream to be decompressed. This time expenditure in decompressing a data stream significantly slows the printing process.
From the above discussion, it can be seen that it would be beneficial to improve the performance of printing systems by providing a system and method for data decompression that is capable of decompressing incoming print data more quickly so as to supply a continuous stream of print data to a high capacity print engine.
The data decompression system of the present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available data decompression systems. Accordingly, it is an overall object of the present invention to provide a data decompression system that overcomes many or all of the above-discussed shortcomings in the art.
To achieve the foregoing object, and in accordance with the invention as embodied and broadly described herein in the preferred embodiment, an improved data decompression system and method are provided.
The data decompression method of the present invention may include receiving a plurality of parallel data streams of compressed print data each having a plurality of bytes into a storage stage such as a barrel shifter. The barrel shifter is fed in groups of bytes as space opens up. The bytes are selected for decompression, and a control byte is selected out. The control byte indicates initially whether the following byte or bytes are run length encoded or not. If not, a number of data bytes, as indicated in the control byte, are passed straight through to the print engine. If the control byte indicates that the following data byte is run length encoded, the control byte also indicates how many times to repeat the data byte. Preferably, the byte is repeated a multiple of the indicated number of times. The process then repeats by selecting the control byte of the next string of bytes.
Additionally, a plurality of such decompression circuits may be operating at one time within a decompression circuit of a color interface card, and a plurality of color interface cards may be resident, each providing decompressed print data to a separate print head. The plurality of decompression circuits are multiplexed within the decompression circuits. Thus, a plurality of parallel data streams are concurrently decompressed. The data decompression system and method are designed to be lossless, simple, efficient, and high capacity in order to enable such a parallel decompression operation.
These and other objects, features, and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.